package com.mmall.pay.result;

import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * @author gg
 * @version RefundQueryResult.java, v 0.1 2019-05-23 11:30 gg
 */
@Data
@EqualsAndHashCode(callSuper = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class RefundQueryResult extends BaseResult{


    /**
     * 字段名：微信订单号.
     * 变量名：transaction_id
     * 是否必填：是
     * 类型：String(32)
     * 示例值：1217752501201407033233368018
     * 描述：微信订单号
     */
    private String transactionId;

    /**
     * <pre>
     * 字段名：商户订单号.
     * 变量名：out_trade_no
     * 是否必填：是
     * 类型：String(32)
     * 示例值：1217752501201407033233368018
     * 描述：商户系统内部的订单号
     * </pre>
     */
    private String outTradeNo;

    /**
     * 字段名：订单金额.
     * 变量名：total_fee
     * 是否必填：是
     * 类型：Int
     * 示例值：100
     * 描述：订单总金额，单位为分，只能为整数，详见支付金额
     */
    private Integer totalFee;

    /**
     * 字段名：应结订单金额.
     * 变量名：settlement_total_fee
     * 是否必填：否
     * 类型：Int
     * 示例值：100
     * 描述：应结订单金额=订单金额-非充值代金券金额，应结订单金额<=订单金额。
     */
    private Integer settlementTotalFee;

    /**
     * 字段名：货币种类.
     * 变量名：fee_type
     * 是否必填：否
     * 类型：String(8)
     * 示例值：CNY
     * 描述：订单金额货币类型，符合ISO 4217标准的三位字母代码，默认人民币：CNY，其他值列表详见货币类型
     */
    private String feeType;

    /**
     * 字段名：现金支付金额.
     * 变量名：cash_fee
     * 是否必填：是
     * 类型：Int
     * 示例值：100
     * 描述：现金支付金额，单位为分，只能为整数，详见支付金额
     */
    private Integer cashFee;

    /**
     * 字段名：退款笔数.
     * 变量名：refund_count
     * 是否必填：是
     * 类型：Int
     * 示例值：1
     * 描述：退款记录数
     */
    private Integer refundCount;

    //支付宝字段

    /**
     * 退款失败错误码。只在使用异步退款接口情况下才会返回该字段
     */
    private String errorCode;

    /**
     * 退款时间；
     默认不返回该信息，需与支付宝约定后配置返回；
     */
    private Date gmtRefundPay;

    /**
     * 行业特殊信息（例如在医保卡支付退款中，医保局向商户返回医疗信息）。
     */
    private String industrySepcDetail;

    /**
     * 本笔退款对应的退款请求号
     */
    private String outRequestNo;

    /**
     * 本次退款金额中买家退款金额
     */
    private String presentRefundBuyerAmount;

    /**
     * 本次退款金额中平台优惠退款金额
     */
    private String presentRefundDiscountAmount;

    /**
     * 本次退款金额中商家优惠退款金额
     */
    private String presentRefundMdiscountAmount;

    /**
     * 本次退款请求，对应的退款金额
     */
    private String refundAmount;


    /**
     * 退款清算编号，用于清算对账使用；
     只在银行间联交易场景下返回该信息；
     */
    private String refundSettlementId;

    /**
     * 只在使用异步退款接口情况下才返回该字段。REFUND_PROCESSING 退款处理中；REFUND_SUCCESS 退款处理成功；REFUND_FAIL 退款失败;
     */
    private String refundStatus;

    /**
     * 本次商户实际退回金额；
     默认不返回该信息，需与支付宝约定后配置返回；
     */
    private String sendBackFee;

    /**
     * 该笔退款所对应的交易的订单金额
     */
    private String totalAmount;

    /**
     * 支付宝交易号
     */
    private String tradeNo;






}